package com.sdy.dcsb.biz.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sdy.dcsb.biz.model.EsbDictionary;
import com.sdy.dcsb.biz.model.EsbInboundParamDic;
import com.sdy.dcsb.biz.model.vo.EsbDictionaryVo;
import com.sdy.mvc.service.BaseService;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 总线实例
 * </p>
 *
 * @author lx
 * @since 2019-09-27
 */
public interface EsbDictionaryService extends BaseService<EsbDictionary> {

    /**
     * 获取已存在字典信息
     * @param page 分页信息
     * @param name 字典名称
     * @return 字典信息
     */
    IPage<EsbDictionaryVo> getPageData(Page<?> page, String name);

    /**
     * 获取字典配置详情
     * @param page 分页信息
     * @param dicName 字典名称
     * @return 字典配置详情
     */
    IPage<EsbDictionary> getDetail(Page<?> page, String dicName);

    /**
     * 查询存在字典配置的参数id
     * @return 字典集合
     */
    List<EsbDictionary> getAllParamDic();

    /**
     * 获取封装接口线程中存在的参数字典配置信息
     * @param id 封装接口id
     * @param threadOrder 线程序号
     * @return 参数字典配置信息
     */
    List<EsbInboundParamDic> getExistDictionaryParamId(@Param("id") Integer id, @Param("threadOrder") Integer threadOrder);

    /**
     * 批量插入字典配置信息
     * @param list 字典配置信息集合
     * @return 是否成功
     */
    boolean batchSave(List<EsbDictionary> list);
}
